home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / perl5 / Mail / Field / Date.pm < prev    next >
Encoding:
Text File  |  2008-07-29  |  1.1 KB  |  63 lines

  1. # Copyrights 1995-2008 by Mark Overmeer <perl@overmeer.net>.
  2. #  For other contributors see ChangeLog.
  3. # See the manual pages for details on the licensing terms.
  4. # Pod stripped from pm file by OODoc 1.05.
  5. use strict;
  6.  
  7. package Mail::Field::Date;
  8. use vars '$VERSION';
  9. $VERSION = '2.04';
  10.  
  11. use base 'Mail::Field';
  12.  
  13. use Date::Format qw(time2str);
  14. use Date::Parse  qw(str2time);
  15.  
  16. (bless [])->register('Date');
  17.  
  18.  
  19. sub set()
  20. {   my $self = shift;
  21.     my $arg = @_ == 1 ? shift : { @_ };
  22.  
  23.     foreach my $s (qw(Time TimeStr))
  24.     {   if(exists $arg->{$s})
  25.              { $self->{$s} = $arg->{$s} }
  26.         else { delete $self->{$s} }
  27.     }
  28.  
  29.     $self;
  30. }
  31.  
  32. sub parse($)
  33. {   my $self = shift;
  34.     delete $self->{Time};
  35.     $self->{TimeStr} = shift;
  36.     $self;
  37. }
  38.  
  39.  
  40. sub time(;$)
  41. {   my $self = shift;
  42.  
  43.     if(@_)
  44.     {   delete $self->{TimeStr};
  45.         return $self->{Time} = shift;
  46.     }
  47.  
  48.     $self->{Time} ||= str2time $self->{TimeStr};
  49. }
  50.  
  51. sub stringify
  52. {   my $self = shift;
  53.     $self->{TimeStr} ||= time2str("%a, %e %b %Y %T %z", $self->time);
  54. }
  55.  
  56. sub reformat
  57. {   my $self = shift;
  58.     $self->time($self->time);
  59.     $self->stringify;
  60. }
  61.  
  62. 1;
  63.